CREATE TABLE [dbo].[tb_CertificadoAsignacionFamiliar]
(
[idCertificado] [int] NOT NULL IDENTITY(1, 1),
[idFamiliar] [int] NOT NULL,
[Vigencia] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Meses] [int] NOT NULL,
[TipoCertificado] [int] NOT NULL,
[Ano] [int] NOT NULL,
[FechaPresentacion] [datetime] NOT NULL,
[FechaEmision] [datetime] NULL,
[NumeroCertificado] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[NTUser] [int] NULL,
[FechaCarga] [datetime] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
-- =============================================
-- Author:		<Author,Yapura Alberto>
-- Create date: <Create Date,02/09/2014>
-- Description:	<Description,trigger de insercion, cheque que la persona a cargo ingresada tenga algun parentezco con el agente>
-- =============================================
CREATE TRIGGER [dbo].[triggerUpdateCertificadoAsignacionFamiliar] ON [dbo].[tb_CertificadoAsignacionFamiliar]
FOR UPDATE
AS 
IF (EXISTS (SELECT * FROM tb_CertificadoAsignacionFamiliar As caf,INSERTED  
					WHERE caf.idCertificado <> INSERTED.idCertificado AND caf.idFamiliar = INSERTED.idFamiliar 
					AND caf.NumeroCertificado = INSERTED.NumeroCertificado
					and caf.TipoCertificado = INSERTED.TipoCertificado))
BEGIN
	RAISERROR('El certificado ya fue ingresado.', 16, 1)
	ROLLBACK
END
GO

ALTER TABLE [dbo].[tb_CertificadoAsignacionFamiliar] WITH NOCHECK ADD
CONSTRAINT [FK_tb_CertificadoAsignacionFamiliar_tb_FamiliareACargo] FOREIGN KEY ([idFamiliar]) REFERENCES [dbo].[tb_FamiliaresACargo] ([idFamiliar])
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
-- =============================================
-- Author:		<Author,Yapura Alberto>
-- Create date: <Create Date,02/09/2014>
-- Description:	<Description,trigger de insercion, cheque que la persona a cargo ingresada tenga algun parentezco con el agente>
-- =============================================
CREATE TRIGGER [dbo].[triggerInsertCertificadoAsignacionFamiliar] ON [dbo].[tb_CertificadoAsignacionFamiliar]
FOR INSERT
AS 
SET NOCOUNT ON
DECLARE @certificado INT
DECLARE @familiar INT
DECLARE @tipoCertificado INT
DECLARE @ano INT
DECLARE @parentezco INT
DECLARE @certificadoUpdate INT

SET @certificado = -1

SELECT @familiar = INSERTED.idFamiliar, @tipoCertificado = INSERTED.TipoCertificado, @ano = INSERTED.Ano, @certificadoUpdate = INSERTED.idCertificado
FROM INSERTED

SELECT @certificado = caf.idCertificado FROM tb_CertificadoAsignacionFamiliar AS caf WHERE @familiar = caf.idFamiliar 
					 AND @tipoCertificado = caf.TipoCertificado AND @ano = caf.Ano AND @certificadoUpdate = caf.idCertificado
IF (@certificado <>@certificadoUpdate)
 BEGIN
	RAISERROR('El certificado ya fue presentado por este agente.', 16, 1)
	ROLLBACK
END
GO



ALTER TABLE [dbo].[tb_CertificadoAsignacionFamiliar] ADD CONSTRAINT [PK_tb_CertificadoAsignacionFamiliar] PRIMARY KEY CLUSTERED  ([idCertificado]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[tb_CertificadoAsignacionFamiliar] ADD CONSTRAINT [FK_tb_CertificadoAsignacionFamiliar_tb_TiposCertificadosDeEscolaridad] FOREIGN KEY ([TipoCertificado]) REFERENCES [dbo].[tb_TiposCertificadosDeEscolaridad] ([idTipoCertificado])
GO
